return use_portal[0] == '1';
}
+
+static char *
+get_portal_path (GDBusConnection *connection,
+ const char *kind,
+ char **token)
+{
+ char *sender;
+ int i;
+ char *path;
+
+ *token = g_strdup_printf ("gtk%d", g_random_int_range (0, G_MAXINT));
+ sender = g_strdup (g_dbus_connection_get_unique_name (connection) + 1);
+ for (i = 0; sender[i]; i++)
+ if (sender[i] == '.')
+ sender[i] = '_';
+
+ path = g_strconcat ("/org/freedesktop/portal/desktop", "/", kind, "/", sender, "/", token, NULL);
+
+ g_free (sender);
+
+ return path;
+}
+
+char *
+gtk_get_portal_request_path (GDBusConnection *connection,
+ char **token)
+{
+ return get_portal_path (connection, "request", token);
+}
+
+char *
+gtk_get_portal_session_path (GDBusConnection *connection,
+ char **token)
+{
+ return get_portal_path (connection, "session", token);
+}
void _gtk_set_slowdown (gdouble slowdown_factor);
gboolean gtk_should_use_portal (void);
+char *gtk_get_portal_request_path (GDBusConnection *connection,
+ char **token);
+char *gtk_get_portal_session_path (GDBusConnection *connection,
+ char **token);
#ifdef G_OS_WIN32
void _gtk_load_dll_with_libgtk3_manifest (const char *dllname);